// 确保包路径与你的文件位置一致（例如）
package com.finance.console.service.record;

// 补充所有必要导入（根据你的项目结构）
import com.finance.console.dao.IncomeExpenseDAO;
import com.finance.console.entity.IncomeExpense; // 注意你的实体类在entity包下
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;

public class IncomeExpenseService {
    // 初始化DAO（与你的命名一致）
    private IncomeExpenseDAO recordDAO = new IncomeExpenseDAO();
    private SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");

    // 查询当月收支记录（修复所有语法和调用错误）
    public List<IncomeExpense> getRecordsByMonth(int userId, String yearMonth, String type) {
        try {
            // 解析年月为日期范围（修复Calendar参数错误）
            Date monthStart = sdf.parse(yearMonth);
            Calendar calendar = Calendar.getInstance();
            calendar.setTime(monthStart);
            calendar.add(Calendar.MONTH, 1); // 移除错误的"amount"
            calendar.add(Calendar.DAY_OF_MONTH, -1); // 移除错误的"amount"
            Date monthEnd = calendar.getTime();

            // 调用DAO方法（修复方法名，与DAO中实际方法名一致）
            return recordDAO.findByUserIdAndTypeAndDate(
                    userId,
                    type,
                    monthStart,
                    monthEnd
            );
        } catch (Exception e) {
            e.printStackTrace();
            // 修复：JDK8及以下用new ArrayList<>()替代List.of()（避免版本问题）
            return new ArrayList<>();
        }
    }

    // 添加收支记录（修复参数类型和DAO调用）
    public void addRecord(IncomeExpense record) {
        // 确保DAO的insert方法存在且参数匹配
        recordDAO.insert(record);
    }
}